﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;

namespace Ocean.His.MedicalInsurance
{
    /// <summary>
    /// 3502
    /// 商品库存变更
    /// </summary>
    [DataContract]
    public class SI3502Data
    {
        /// <summary>
        /// 医疗目录编码
        /// 参数类型：字符型
        /// 参数长度：50
        /// 代码标识：
        /// 是否必填：Y
        /// 
        /// </summary>
        [DataMember(Name = "med_list_codg")]
        public string MedListCodg { get; set; }

        /// <summary>
        /// 库存变更类型
        /// 参数类型：字符型
        /// 参数长度：6
        /// 代码标识：Y
        /// 是否必填：Y
        /// 
        /// </summary>
        [DataMember(Name = "inv_chg_type")]
        public string InvChgType { get; set; }

        /// <summary>
        /// 定点医药机构目录编号
        /// 参数类型：字符型
        /// 参数长度：30
        /// 代码标识：
        /// 是否必填：Y
        /// 
        /// </summary>
        [DataMember(Name = "fixmedins_hilist_id")]
        public string FixmedinsHilistId { get; set; }

        /// <summary>
        /// 定点医药机构目录名称
        /// 参数类型：字符型
        /// 参数长度：200
        /// 代码标识：
        /// 是否必填：Y
        /// 
        /// </summary>
        [DataMember(Name = "fixmedins_hilist_name")]
        public string FixmedinsHilistName { get; set; }

        /// <summary>
        /// 定点医药机构批次流水号
        /// 参数类型：字符型
        /// 参数长度：30
        /// 代码标识：
        /// 是否必填：Y
        /// 
        /// </summary>
        [DataMember(Name = "fixmedins_bchno")]
        public string FixmedinsBchno { get; set; }

        /// <summary>
        /// 单价
        /// 参数类型：数值型
        /// 参数长度：16,6
        /// 代码标识：
        /// 是否必填：Y
        /// 
        /// </summary>
        [DataMember(Name = "pric")]
        public decimal Pric { get; set; }

        /// <summary>
        /// 数量
        /// 参数类型：数值型
        /// 参数长度：16,4
        /// 代码标识：
        /// 是否必填：Y
        /// 按最小计价包装单位
        /// </summary>
        [DataMember(Name = "cnt")]
        public decimal Cnt { get; set; }

        /// <summary>
        /// 处方药标志
        /// 参数类型：字符型
        /// 参数长度：3
        /// 代码标识：Y
        /// 是否必填：Y
        /// 
        /// </summary>
        [DataMember(Name = "rx_flag")]
        public string RxFlag { get; set; }

        /// <summary>
        /// 库存变更时间
        /// 参数类型：日期时间型
        /// 参数长度：
        /// 代码标识：
        /// 是否必填：Y
        /// yyyy-MM-dd
        /// </summary>
        [DataMember(Name = "inv_chg_time")]
        public string InvChgTime { get; set; }

        /// <summary>
        /// 库存变更经办人姓名
        /// 参数类型：字符型
        /// 参数长度：50
        /// 代码标识：
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "inv_chg_opter_name")]
        public string InvChgOpterName { get; set; }

        /// <summary>
        /// 备注
        /// 参数类型：字符型
        /// 参数长度：500
        /// 代码标识：
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "memo")]
        public string Memo { get; set; }

        /// <summary>
        /// 拆零标志
        /// 参数类型：字符型
        /// 参数长度：2
        /// 代码标识：
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "trdn_flag")]
        public string TrdnFlag { get; set; }


    }

    /// <summary>
    /// 
    /// </summary>
    [DataContract]
    public class SI3502InputModel
    {
        [DataMember(Name = "invinfo")]
        public SI3502Data si3502Data { get; set; }
    }

    /// <summary>
    /// 3502
    /// 商品库存变更
    /// </summary>
    [DataContract]
    public class SI3502RequestModel : SIBaseRequestModel
    {
        /// <summary>
        /// 交易输入
        /// </summary>
        [DataMember(Name = "input")]
        public SI3502InputModel Input { get; set; }

        public SI3502RequestModel(MedicalInsuranceOption config) : base(config)
        {
            Infno = "3502";
        }
    }
}
